Estimating physical parameters using three dimensional representations

ABSTRACT

Methods, systems, and apparatus for estimating physical parameters using three dimensional representations. In one aspect, predetermined light patterns are projected onto an object and light patterns resulting from an interaction of the projected light patterns and portions of the object are detected. Three dimensional locations of multiple light elements in the detected light pattern are determined, and physical parameters of the object, for example, weight, are estimated based on the locations.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 61/156,205, filed Feb. 27, 2009, which is incorporatedherein by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to methods, devices and systems forestimating a physical parameter of an object. For example, the methods,devices and systems can be used to produce a three dimensionalrepresentation of at least a portion of an object, such as a livestockanimal. The three dimensional representation can be used to estimate aphysical parameter, such as weight, of the livestock animal.

BACKGROUND

Accurate estimation of an object's physical parameters, such as weight,can be important in many commercial fields. In agriculture, for example,the accurate estimation of final carcass weight is important inefficient livestock processing operations. Accurately estimating alivestock animal's weight and/or final carcass weight can result insignificant cost savings to the live stock producer, who often arepenalized per animal for a group of animals whose carcasses fall outsideof a weight range considered optimal by the meat processing plant. Fewerpenalties lead to a higher profit margin for the farmer who can deliveraccurately weighed animals. Knowing the weight of the live animal isalso important for optimally managing feed resources during the growingperiod. Methods for weighing animals, however, which include positioningeach animal on a scale, can be stressful and harmful to the animal andmay result in reduced yields.

SUMMARY

This specification describes technologies relating to estimatingphysical parameters using three dimensional representations. Providedherein are methods, devices and systems for estimating a physicalparameter of an object. For example, the methods, devices, and systemscan be used to produce a three dimensional representation of at least aportion of an object, such as a livestock animal. The three dimensionalrepresentation can be used to estimate a physical parameter, such asweight, of the livestock animal.

In general, one innovative aspect of the subject matter described herecan be implemented as a method for estimating a physical parameter of anobject. One or more predetermined light patterns are projected onto atleast a portion of the object. Each projected light pattern includesmultiple light elements. One or more light patterns resulting from aninteraction of one or more of the projected light patterns and at leasta portion of the object are detected. Each detected light patternincludes multiple light elements and is detected from a single location.A single detected light pattern is processed to provide a threedimensional representation of at least a portion of the object bydetermining the three dimensional location of multiple light elements ofthe single detected light pattern. The three dimensional representationof at least a portion of the object is used to estimate the physicalparameter of the object.

This, and other aspects, can include one or more of the followingfeatures. The single detected light pattern processed to provide thethree dimensional representation of at least a portion of the object canbe based on a single projection of a predetermined light pattern onto atleast a portion of the object. Each single detection location can beoffset from the location from which the pattern is projected. The singlelocation from which one or more of the light patterns is detected candiffer between one or more detected light patterns. The physicalparameter can be weight. The object can be an animal. The animal can bea mammal. The animal can be a livestock animal. The physical parametercan be selected from the group consisting of weight, surface area,girth, length, height, carcass composition, primal cuts proportions,tissue composition, muscling, body mass index, body asymmetry andvolume. A physical measurement of the object can be estimated from thethree dimensional representation of at least a portion of the object.The object can be a swine and the physical measurement can be selectedfrom the group consisting of crown-rump length, heart girth, front legcircumference below the elbow, elbow to elbow distance, flank to flankdistance, front leg length, crease to crease length, hock circumference,rear leg circumference at groin, width at shoulders, ham width, width atham crease, width at maximum ham protrusion, belly clearance, height atscapula, height above hip, and height at tall insertion. Additionalphysical measurements can also be estimated from the three dimensionalrepresentation of at least a portion of the object. One or more physicalmeasurement can be used to estimate the weight of the swine, or anotherlivestock animal. In the case of swine, optionally, the crown-rumplength multiplied by the ham width multiplied by the tail insertionheight can be used to estimate the weight of the swine.

Another innovative aspect of the subject matter described here can beimplemented as a computer-implemented method for estimating a physicalparameter of an object. Multiple predetermined light patterns areprojected onto at least a portion of the object. Each pattern isprojected onto the object or portion thereof from substantially the sameangle. Each projected light pattern comprises a plurality of lightelements. One or more light patterns resulting from an interaction ofthe projected light patterns and at least a portion of object aredetected. Each detected light pattern comprises a plurality of lightelements and is detected from a single location. One or more detectedlight patterns are processed to provide a three dimensionalrepresentation of at least a portion of the object. The threedimensional representation of at least a portion of the object is usedto estimate the physical parameter of the object.

This, and other aspects, can include one or more of the followingfeatures. The estimated physical parameter can be displayed.

Another innovative aspect of the subject matter described here can beimplemented as a system for estimating a physical parameter of anobject. The system includes a light projector comprising a light sourceconfigured to project one or more predetermined light patternscomprising a plurality of light elements onto at least a portion of theobject. The system includes a detector configured to detect one or morelight patterns comprising a plurality of light elements and resultingfrom an interaction of one or more projected light pattern and at leasta portion of the object. The system includes a data processing apparatusconfigured to provide a three dimensional representation of at least aportion of the object by determining the three dimensional location of aplurality of light elements from a single detected light patterndetected from a single detector location, and uses the three dimensionalrepresentation to estimate the physical parameter of the object.

This, and other aspects, can include one or more of the followingfeatures. The detected light pattern processed to provide the threedimensional representation of at least a portion of the object can bebased on a single projection of a predetermined light patter onto atleast a portion of the object. The light projector further can includean aperture from which one or more predetermined light pattern isprojected. The detector can include an aperture into which one or morelight patterns from the object is received and wherein the projectoraperture is offset from the detector aperture. The light source can be alight flash apparatus. The light flash apparatus can be configured toproduce a transient flash of light. The data processing apparatus canfurther be configured to estimate a physical measurement of the objectfrom the three dimensional representation of at least a portion of theobject. The object can be a swine and the physical measurement can beselected from the group consisting of crown-rump length, heart girth,front leg circumference below the elbow, elbow to elbow distance, flankto flank distance, front leg length, crease to crease length, hockcircumference, rear leg circumference at groin, width at shoulders, hamwidth, width at ham crease, width at maximum ham protrusion, bellyclearance, height at scapula, height above hip, and height at tailinsertion. One or more physical measurement can be used to estimate theweight of the swine. The crown-rump length multiplied by the ham widthmultiplied by the tail insertion height can be used to estimate theweight of the swine.

Another innovative aspect of the subject matter described here can beimplemented as a computer-implemented method for determining a positionof an object on a surface. One or more predetermined light patterns areprojected onto at least a portion of the object and onto at least aportion of the surface. Each projected light pattern includes aplurality of light elements. One or more light patterns are detected onthe object and on the surface resulting from an interaction of the oneor more projected predetermined light patterns and at least a portion ofthe object and at least a portion of the surface. The detected lightpatterns comprise a plurality of light elements. The three dimensionallocation of a plurality of light elements included in the detected lightpatterns is determined. A three dimensional representation of at least aportion of the object and a three dimensional representation of at leasta portion of the surface is determined from the determined threedimensional locations of the plurality of light elements from thedetected light patterns. A position of the object relative to thesurface is determined based on the determined three dimensionalrepresentations of at least a portion of the object and at least aportion of the surface.

This, and other aspects, can include one or more of the followingfeatures. Determining the position of the object relative to the surfacecan include determining an orientation of the object with respect to thesurface. For example, the orientation is normal to the surface on whichthe object is resting. The surface can be a substantially planarsurface. For example, the object is a pig and the surface is a planarsurface as found in a commercial hog farm. In such a scenario, the pigand consequently the three dimensional representation of at least aportion of the pig is in the vertical, “upright” position, for example,the standing position. The orientation of the object with respect to thesurface can be determined using a vector normal to the surface. Thethree dimensional representation of at least the portion of the objectcan be used to estimate a physical parameter of the object based on thevertical orientation of the object with respect to the surface.

Another innovative aspect of the subject matter described here can beimplemented as a computer-implemented method for determining a positionof an object on a surface. One or more first predetermined lightpatterns are projected onto at least a portion of the object. Each firstprojected light pattern comprising a plurality of light elements. One ormore second predetermined light patterns are projected onto at least aportion of the surface on which the object is positioned. Each secondprojected light pattern comprising a plurality of light elements. One ormore light patterns on the object resulting from an interaction of theone or more projected first predetermined light patterns and at least aportion of the object are detected. Each detected light pattern on theobject comprises a plurality of light elements. One or more lightpatterns on the surface and resulting from an Interaction of the one ormore projected second predetermined light patterns and at least aportion of the surface are detected. Each detected light pattern on thesurface comprises a plurality of light elements. The three dimensionallocation of a plurality of light elements included in the detected lightpattern on the object is determined. The three dimensional location of aplurality of light elements included in the detected light pattern onthe surface is determined. A three dimensional representation of atleast a portion of the object and a three dimensional representation ofat least a portion of the surface from the determined three dimensionallocations of the plurality of light elements from both the detectedlight pattern on the object and from the detected light pattern on thesurface is determined. A position of the object relative to the surfacebased on the determined three dimensional representations of at least aportion of the object and at least a portion of the surface isdetermined.

This, and other aspects, can include one or more of the followingfeatures. One or more first predetermined light patterns and one or moresecond predetermined light patterns can be projected in a direction andthe plurality of light elements of the first predetermined light patterncan be parallel to each other and to a first axis and the plurality oflight elements of the second predetermined light pattern can be parallelto each other and to a second axis. The first and second axes may not bealigned. Determining the position of the object relative to the surfacecan include determining the orientation of the object with respect tothe surface. The three dimensional representation of at least theportion of the object can be used to estimate a physical parameter ofthe object based on the orientation of the object with respect to thesurface. The physical parameter can be weight. The object can be a farmanimal standing on the surface. The object can be a three-dimensionalobject that is resting on top of the surface. Projecting a firstpredetermined light pattern onto at least the portion of the object caninclude projecting a first predetermined light pattern for a singleinstant. A first predetermined light pattern and a second predeterminedlight pattern can be projected as a flash of light, for example, asingle flash of light.

Another innovative aspect of the subject matter described here can beimplemented as a computer-implemented method for estimating a physicalparameter of an object. The method includes projecting one or morediagonal light patterns onto at least a portion of the object. Eachprojected diagonal light pattern comprises a plurality of lightelements. Each light element is parallel to an axis that is diagonal toa vertical axis that lies on a plane perpendicular to the direction inwhich the one or more diagonal light patterns is projected. One or morelight patterns on the object resulting from an interaction of one ormore of the projected diagonal light patterns and at least a portion ofthe object are detected. Each detected light pattern comprises aplurality of light elements. A three dimensional representation of atleast a portion of the object is provided by determining the threedimensional location of a plurality of light elements of the one or moredetected light patterns on the object. The three dimensionalrepresentation of at least a portion of the object is used to estimatethe physical parameter of the object.

This, and other aspects, can include one or more of the followingfeatures. The one or more detected light patterns processed to providethe three dimensional representation of at least a portion of the objectcan be based on a single projection of a predetermined light patternonto at least a portion of the object. The one or more detected lightpatterns can be detected from a single location on the object. One ormore vertical light patterns can be projected onto at least a portion ofa surface on which the object is positioned. Each projected verticallight pattern can include a plurality of light elements. Each lightelement can be parallel to the vertical axis that lies on the planeperpendicular to the direction in which the one or more diagonal lightpatterns are projected. One or more light patterns resulting from aninteraction of one or more of the vertical light patterns and at least aportion of the surface can be detected. Each detected light pattern caninclude a plurality of light elements. A three dimensionalrepresentation of at least a portion of the surface can be provided bydetermining the three dimensional location of a plurality of lightelements of the one or more detected light pattern. The threedimensional representation of at least a portion of the surface can beused to determine a position of the object on the surface.

Another innovative aspect of the subject matter described here can beimplemented as an apparatus for estimating a physical parameter of anobject positioned on a surface. The apparatus includes a light projectorincluding a light source to emit light, and a device positioned in apath of the light emitted by the light source that selectively blocks atleast a portion of the emitted light to produce a first pattern of lightfor projection onto at least a portion of the object and a secondpattern of light for projection onto at least a portion of the surface.The apparatus also includes a detector configured to detect lightpatterns resulting from an interaction of the first light pattern andthe object and the second light pattern and the surface. The apparatusalso includes a data processing apparatus configured to performoperations comprising determining a position of the object relative tothe surface based on the light patterns detected by the detector, anddetermining a physical parameter of the object based on the lightpatterns detected by the detector.

This, and other aspects, can include one or more of the followingfeatures. The device that selectively blocks at least a portion of theemitted light to produce a first pattern of light for projection onto atleast a portion of the object and a second pattern of light onto atleast a portion of the surface can be selected from the group consistingof a transparent surface comprising light blocking portions, a stenciland a digital micromirror device. The transparent surface can include afirst plurality of markings oriented in a first direction on thetransparent surface and a second plurality of markings oriented in asecond direction on the transparent surface. The first direction can bedifferent from the second direction. The light projector projectinglight that passes through the first plurality of markings to produce afirst light pattern can include a plurality of light elements forprojection onto an object. Projecting light through the second pluralityof markings to produce a second light pattern can include a plurality oflight elements for projection onto the surface on which the object ispositioned. The light projector further can include optics to transmitlight from the light source through the first plurality of markings andthe second plurality of markings on the transparent surface. Thetransparent surface can be a slide. The first plurality of markings canbe diagonal etch marks and the second plurality of markings can bevertical etch marks on the slide. The light projector and the detectorcan be positioned on the same horizontal plane when the apparatus is inoperation. The apparatus can additionally include a housing within whichthe light projector and the detector are positioned. The housing caninclude a plurality of openings through which the light projectorprojects light and the detector detects light patterns. The detector caninclude a charge coupled device (CCD) to capture the detected lightpatterns. The detector can be configured to detect the first detectedlight patterns resulting from an interaction of the first light patternand the object, and the second detected light patterns resulting from aninteraction of the second light pattern, and the surface. The apparatuscan further include processing circuitry configured to provide a threedimensional representation of at least a portion of the object and athree dimensional representation of at least a portion of the surface bydetermining the three dimensional locations of the plurality of lightelements included in the first and second detected light patterns,respectively.

Another innovative aspect of the subject matter described here can beimplemented as a system that includes a light projector configured toproject one or more diagonal light patterns onto at least a portion ofan object, wherein each projected diagonal light pattern comprises aplurality of light elements, wherein each light element is parallel toan axis that is diagonal to a vertical axis that lies on a planeperpendicular to the direction in which the one or more diagonal lightpatterns are projected, a detector configured to detect one or morelight patterns on the object and resulting from an interaction of one ormore of the predetermined diagonal light patterns and at least a portionof the object, wherein each detected light pattern comprises a pluralityof light elements, and processing circuitry configured to provide athree dimensional representation of at least a portion of the object bydetermining the three dimensional location of a plurality of lightelements on the object of the one or more detected light pattern, anduse the three dimensional representation of at least a portion of theobject to estimate the physical parameter of the object.

This, and other aspects, can include one or more of the followingfeatures. The projector can further be configured to project one or morevertical light patterns onto at least a portion of a surface on whichthe object is positioned. Each projected vertical light pattern caninclude a plurality of light elements. Each light element can beparallel to the vertical axis that lies on the plane perpendicular tothe direction in which the one ore more diagonal patterns are projected.The detector can further be configured to detect one or more lightpatterns on the surface and resulting from an interaction of one or moreof the predetermined vertical light patterns and at least a portion ofthe surface. Each detected light pattern can include a plurality oflight elements. The processing circuitry can further be configured toprovide a three dimensional representation of at least a portion of thesurface by determining the three dimensional location of a plurality oflight elements on the surface of the one or more detected light pattern,and use the three dimensional representation of at least a portion ofthe surface to determine a position of the object on the surface.

The details of one or more embodiments of the subject matter describedin this specification are set forth in the accompanying drawings and thedescription below. Other features, aspects, and advantages of thesubject matter will become apparent from the description, the drawings,and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram illustrating portions of an example devicefor estimating a physical parameter of an object.

FIG. 2 is a schematic diagram illustrating portions of an example devicefor estimating a physical parameter of an object.

FIG. 3 is a schematic diagram illustrating portions of an example devicefor estimating a physical parameter of an object.

FIG. 4 is a schematic diagram illustrating portions of an example devicefor estimating a physical parameter of an object.

FIG. 5 is an illustration of an example triangulation method for usewith the described devices, systems and methods.

FIG. 6 is a schematic diagram of scan of a swine from which crown rumplength is calculated.

FIG. 7 is a schematic diagram of scan of a swine from which flank girthis calculated.

FIG. 8 is a schematic diagram of a scan of a swine from which ham widthis calculated.

FIG. 9A is a raw image of a marked pig acquired using an example systemdescribed herein from the side.

FIG. 9B is a three dimensional scan labeled with crown-rump length, tailinsertion height, and ham width.

FIG. 10 is a schematic diagram illustrating an exploded view of anexample device for estimating a physical parameter of an object.

FIG. 11 is a schematic diagram illustrating an isometric view of theexample device with top housing removed for estimating a physicalparameter of an object.

FIG. 12 is a schematic diagram illustrating an isometric view of theexample device with the bottom housing removed.

FIG. 13 is a schematic diagram illustrating a rear view of the exampledevice with top housing removed.

FIG. 14 is a diagram illustrating showing a first light pattern and asecond light pattern that can be projected such that it is incident onan object and a surface on which the object is positioned, respectively.

FIG. 15 is a raw image of a pig marked with two light patternssimultaneously.

FIG. 16 is a block diagram illustrating portions of an example systemfor estimating a physical parameter of an object.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

Methods, apparatuses, and systems for estimating physical parametersusing three dimensional representations are described in thisdisclosure. As described with reference to the following figures,physical parameters of an object are estimated using three dimensionalrepresentations obtained by the interaction of light patterns that areincident on the object. A light pattern is any pattern of light that canbe projected onto an object for detection and subsequent representation,for example, in three dimensions. The light pattern can include multiplelight elements. The light pattern can optionally be a structured lightpattern. In one example structured light pattern, each light element canbe a stripe that is parallel to the other light elements of the pattern.In another example structured light pattern, each light element can be acoded target. To estimate the physical parameters, a device shines alight pattern on an object of interest and captures an interaction ofthe light pattern with the object. An example of such a device isdescribed with reference to FIG. 1. Another example of such a device isdescribed with reference to FIGS. 3-4 and 10-13.

FIG. 1 is a schematic diagram of a device 10 for estimating a physicalparameter of an object using a three dimensional representation of atleast a portion of the object. The device 10 is configured to project alight pattern onto an object and to receive a light pattern from theobject. The received light pattern from the object comprises a lightpattern resulting from the interaction of the projected light patternand at least a portion of the object.

While the object is not limited to a living being, in one example, theobject is an animal or a portion of an animal. For example, the objectcan be a human or non-human animal. Optionally, the object is livestockanimal, such as a pig, cow, goat, sheep, fish, horse, or the like. Theanimal can be a male or female animal of any age. Alternatively, or inaddition, the object can be any type of poultry or a portion of poultry.

Portions of the device 10 can be located in a housing 12. Optionally,the housing 12 is configured to be hand held by an operator of thedevice 10. When the housing is hand held, the device can be moved withinthe object's environment for use in producing the three dimensionalrepresentation of at least a portion of the object. Thus, for example,if a livestock animal is the object for which a three dimensionalrepresentation will be produced, then the device 10 can be freely movedrelative to the livestock animal while the animal is unrestrained in itsnatural commercial environment.

The device 10 can comprise a light source 14 which is located in thehousing 12. The light source 14 can be a flash type light source (forexample, a flash bulb) that can produce a transient flash of light forprojection onto an object. Flash type light sources are commonly used inthe optics field. For example, familiar flash type light sources areused in cameras to flash light onto objects for capturing their image.The device 10 can further comprise a human machine interface 32, such asa trigger, which can be used to trigger projection of light from thelight source towards the object.

A slide 16, which can be made of glass or another light transmittingmaterial, can be located in the housing 12 and operatively positionedbetween the light source 14 and the object. The slide 16 comprises aknow pattern. For example, one or more known patterns can be printed oretched onto the slide 16. In one example, the slide is a glass slidethat has a mirrored surface. The mirrored surface can have a portion ofits mirroring etched away using acid to produce a known pattern ofnon-mirrored surface on the slide. The pattern is projected as aplurality of light elements from the slide when light from the lightsource 14 is transmitted through the slide and towards the object.Optionally, the pattern on the slide 16 comprises a plurality ofelements that cause projection of a plurality of corresponding lightelements onto the object or a portion thereof. The location of eachelement is known. It will be appreciated that light patterns can beproduced using objects other than or in addition to slide 16. Forexample, a digital micro-mirror such as a digital light projector (DLP)can be used. Alternatively, or in addition, light patterns can beproduced using steel gobos (a stencil used to cast a pattern on a wall).The light pattern can be generated using any transparent surface havingmarkings on the surface or any device that selectively blocks light frompassing through or a combination of the two.

Returning to FIG. 1, when light passes through the slide 16 from thelight source 14, a pattern of light having a plurality of light elementsis created. Because the location of each element of the slide 16 isknown the projected light pattern is also known. This pattern of lightis optionally directed through a collection lens 18 and onto and througha projection lens 20, which focuses the pattern out of the aperture 22and onto the object or a portion thereof. Optionally, the aperture 22 isprotected by protective glass. The aperture 22 can also optionally beshuttered. Because the location of each element of the plurality ofelements is known and the optics (for example projection angle) of theprojection lens 20 is also known, the location where each element shouldfall on a perpendicular plane at any given distance from the projectionlens 20 can be estimated. Further, the angle α at which each element isprojected from the projector can be estimated. As shown in FIG. 5, a canbe measured relative to the optical axis of a light projector apparatus.

Light projected onto at least a portion of the object interacts with theobject, or portion thereof, and a resulting light pattern comprising aplurality of light elements can be detected. The resulting light patterncan be detected by a capture portion (for example, camera portion)comprising an aperture 24, lens 26 and detector 28. In someimplementations, the capture portion and the projector portion can becalibrated to identify the intrinsic and extrinsic parameters of thecapture portion and the projector to get accurate scan data. Based onthe extrinsic parameters, the position of the projector and the camerain space, with respect to each other, and with respect to the object(s)being imaged, can be determined. To define the extrinsic parameters ofthe camera is to know its relative position and orientation in space,for any given three dimensional image. Intrinsic parameters are thoseinternal to the projector or camera, for example, lens distortion (pincushion and tangential), the focal length of the lens, the format size(for example, the size of the projection pattern slide or the CCD inmillimeters, and the like), the principal point, which is thetheoretical point at which all of the rays of projection intersect (forexample, exact center of the CCD or slide in an ideal system).

In alternative implementations, the calibration can be applied byaccounting for lens distortion in both the camera and the projector. Thelens distortion can be applied to each ray of the camera individually.Typically the lens distortion can be approximated using a polynomialfunction f(x). The pixel locations are then distorted asf(Px,Py,Pz)=(Px1,Py1,Pz1) and the new equation for the camera rays wouldthen be

$P = {\begin{bmatrix}{Cx} \\{Cy} \\{Cz}\end{bmatrix} + {t\begin{bmatrix}{{{Px}\; 1} - {Cx}} \\{{{Py}\; 1} - {Cy}} \\{{{Pz}\; 1} - {Cz}}\end{bmatrix}}}$

In the case of the projector, to find the distorted intersections of theprojection plane, the plane is broken into a series of rays whichapproximate the ray. These can be defined similarly as:

${Proj} = {\begin{bmatrix}{Dx} \\{Dy} \\{Dz}\end{bmatrix} + {t\begin{bmatrix}{{{Prx}\; 1} - {Cx}} \\{{{Pry}\; 1} - {Cy}} \\{{{Prz}\; 1} - {Cz}}\end{bmatrix}}}$

The system can be calibrated by considering the projector to be aninverse camera that “sees” that pattern which it projects. The cameracan be calibrated using a camera calibration technique that is known tothose skilled in the art of optical engineering. A fixed, known patterncan be placed on a calibration surface. From this fixed, known pattern,an image acquired with the calibrated camera can be used to determinethe 3D position of the calibration surface with respect to the camera.The projector can then be calibrated by finding the correspondencesbetween the 2D points in the slide pattern and the 3D points that wereprojected onto the calibration surface. The projector calibration candetermine the intrinsic and extrinsic parameters of the projector.

Light passing though the aperture 24 is focused by a lens 26 onto adetector 28. The detector 28 can be, for example, a charged-coupleddevice (CCD). The dimensions of the detector 28 are known. When lightpasses through the lens 26 and strikes the detector 28 at a specificpixel of the detector, if color is used, the color and intensity of thelight is recorded at that pixel. By analyzing the color and intensity ofa plurality of pixels, a pattern of light striking the detector 28 canbe determined. Using this information, the angle β of the aperture 24 orlens 26 relative to the location of a given pattern element on theobject when that element was captured measured relative to the lightprojection element can be estimated. Optionally, the aperture 24 isprotected by protective glass. The aperture 24 can also optionally beshuttered. If color is not used, the detection of light can beaccomplished in monochrome.

FIG. 2 is a schematic diagram illustrating portions of an example devicefor estimating a physical parameter of an object. As shown in FIG. 2,the device 10 includes the housing 12 which is opaque. FIG. 2 showsapertures (22 and 24), which can optionally be covered with protectiveglass. The figure further illustrates an optional display device 34 anda human machine interface 32 (for example, trigger control for causing aprojection of light) integrated into the housing 12. The display device34 can be a liquid crystal display (LCD) common to many digital cameras.The internal components of the device 10 shown in FIG. 1 are locatedwithin the housing.

FIG. 3 and FIG. 4 are example schematic illustrations of a device 40 forestimating a physical parameter of an object. The device 40 comprises aprojection portion 42 which comprises a light source 14 (for example, acamera-type flash apparatus) and an optics portion. The optics portioncan comprise a slide 16, a collecting lens 18 and a projection lens 20.The aperture 22 of the optics portion proximate the object can becovered with a protective glass layer. The device 40 can furthercomprise a capture portion 44, such as a digital camera apparatus. Thecapture portion can comprise an aperture 24 covered with protectiveglass, a lens 26 (for example, a camera lens), and a detector 28. Thedevice 40 can further comprise a human machine interface 32 fortriggering projection of light from the light source 14 and for captureof an image using the capture portion 44.

Located within the capture portion is a detector 28 for detecting lightthough out the capture aperture. The device 40 can also comprise adisplay device as is common to many digital cameras. The device canfurther comprise at least one processing device configured to produce athree dimensional representation of at least a portion of the objectusing a single light pattern detected from a single location of thedetector relative to the object. The at least one processing device canbe further configured to use the three dimensional representation toestimate a physical parameter of the object.

The device 10 can comprise at least one processing device configured forestimating the physical parameter. The at least one processing devicecan also be located remote from the device 10, and the device 10 can bein operative communication with the processing device for the estimationof physical parameter. The at least one processing device for estimatingthe physical parameter can be the same processing device as that used toproduce the three dimensional representation of at least a portion ofthe object. The device 10 can further comprise a power source 30 (forexample, batteries) for powering operations of the device.

Triangulation can be used to produce a three dimensional representationof at least a portion of the object. For example, the device 10 cancomprise at least one processing device configured to provide a threedimensional representation of at least a portion of the object bydetermining a three dimensional location of a plurality of detectedlight elements from a single detected light pattern from the object. Thelight pattern can be detected from a single detector location. Thus, alight pattern from the object resulting from a single projection of thelight pattern using the projector portion of the device 10 can bedetected by the capture portion of the device 10.

When a single projection is used, the light pattern is projected onlyonce from a single location onto at least a portion of the object. Thesingle light pattern interacts with a least a portion of the object anda resulting pattern is detected by the capture portion of the device 10.The detected pattern can therefore result from a single projected lightpattern projected from a single location of the projector portion of thedevice 10.

Since the offset between the projector portion and the camera portion isalso known, the three dimensional location (X, Y, Z coordinates) of aplurality of the light elements of the pattern projected onto the objectcan be estimated. For example, by assuming the camera is the origin(0,0,0), the distance to object Z can be estimated by analyzing theangles α and β. The at least one processing device can also be locatedremote from the device 10 and the device 10 can be in operativecommunication with the processing device for producing the threedimensional representation. For example, the at least one processingdevice can be located in a laptop or other computer remote and incommunication with the device 10.

FIG. 5 is an illustration of an example triangulation method for usewith the described devices, systems and methods. FIG. 5 shows an exampleZ coordinate estimation using triangulation. Each element of theprojected pattern is identifiable using the detected pattern from theobject (for example, captured image). The angle of each target element(for example, light element projected on the object), α, and thecaptured angle of each target element, β, can be used to estimate thedistance Z to the object, or portion thereof. In FIG. 5, ∂Y is thedistance between the projector and camera, ΔY is the offset in the Ydirection of the projector and ΔZ is the offset in the Z direction ofthe projector.

Therefore:

$Z = \frac{{\Delta \; Y} + {{{Tan}(\alpha)}\Delta \; Z}}{{{Tan}(\alpha)} - {{Tan}\left( {\beta - \varphi} \right)}}$

In alternative implementations, the example triangulation methodincludes defining define a Cartesian coordinate system in relation tothe projector with the Z-axis coinciding with the central projectionaxis of the projector. In such implementations, the X-Z plane coincideswith the horizontal sheet of light cast by the projector. This sheet oflight defines a wedge shaped plane of projection. Each stripe in thestructured light pattern creates a corresponding wedge. If the center ofprojection is (0,0,0) then the plane can be defined as:

y−Y _(o) z=0

The camera image can then be seen as a series of rays which are definedby the pixels (Px,Py,Pz) and the center of the camera lens (Cx,Cy,Cz),each ray, P, can be defined with the following equation:

$P = {\begin{bmatrix}{Cx} \\{Cy} \\{Cz}\end{bmatrix} + {t\begin{bmatrix}{{Px}\; - {Cx}} \\{{Py}\; - {Cy}} \\{{Pz}\; - {Cz}}\end{bmatrix}}}$

The intersection of each of these rays with the wedge shaped planescreated by the projector, define the XYZ coordinates of the object. Theintersection of the rays with the planes can be solved using thefollowing equation:

0=Cy+t(Py−Cy)−Y ₀ [Cz+t(Pz−Cz)]

The remaining X and Y coordinates can be estimated by using the opticsof either the projector or camera portions alone, where X is the pixellocation on the detector 28 divided by the number of pixels permillimeter (mm) detector multiplied by the distance to the targetelement (for example, light element projected on the object) divided bythe focal length of the lens. Similarly, Y can be estimated by using thepixel location of the target pattern element on the Y direction of thedetector 28. The X, Y and Z coordinates can be determined for aplurality of light elements on the object and the resulting informationcan be used to produce a three dimensional representation of at least aportion of the object.

The three dimensional representation of the object can then be used toestimate a physical parameter of the object. The physical parameter canoptionally be a non-geometric physical parameter. A geometric physicalparameter is a parameter inherent in scan data received using thedescribed methods and systems, such as, for example length or height ofan object or a portion thereof. Thus, geometric physical parameters arephysical measurements of the object that can be calculated based on thescan data. For swine, examples of geometric physical parameters, orphysical measurements, include crown rump length, heart girth, front legcircumference below the elbow, elbow to elbow distance, flank to flankdistance, front leg length, crease to crease length, hock circumference,rear leg circumference at groin, width at shoulders, ham width, width atham crease, width at maximum ham protrusion, belly clearance, height atscapula, height above hip, and height at tail insertion, to name a few.The physical measurements can be obtained by determining multipleparameters including, for example, a distance between the points on theham and shoulder which have the maximum depth, a distance between themidpoint of the line, and the projection of this line onto the belly ofthe pig, a curvilinear surface distance between the ventral and dorsalaspect of the pig taken along the shoulder crease, a distance betweenthe projection of the points with the maximum and minimum verticalcoordinates at the shoulder crease, a circumference of a verticalsection taken along midpoint between shoulder and ham creases, adistance between the projection of the points with the maximum andminimum vertical coordinates at the midpoint of the shoulder and hamcreases, a curvilinear surface distance between the ventral and dorsalaspect of the pig taken along the midpoint, a distance between theprojection of the points with the maximum and minimum verticalcoordinates at the midpoint, a curvilinear surface distance between theventral and dorsal aspect of the pig taken along the ham crease, adistance between the projection of the points with the maximum andminimum vertical coordinates at the ham crease, and the like.

Crown rump refers to a measurement of swine anatomy which can be used asan estimate of the swine's length. As shown in FIG. 6, the “crown” isthe point on top of the head, between the ears. The “rump” location istaken to be the tail Insert location, or where the dorsal aspect of thetail meets the body. The crown rump length is then the surface distancebetween the crown point and the rump point. Flank girth refers to ameasurement of swine anatomy which can be used as an estimate of theswine's girth. As shown in FIG. 7, this measurement starts at the hamflank point, the flap of skin that is created between the belly and theham. The measurement is taken by taking a vertical surface line startingat the flank point and ending at the dorsal aspect of the object, forexample, the spine. Tall height refers to a measurement of pig anatomywhich can be used as an estimate of the pigs height. This measurement istaken by measuring the perpendicular distance between the floor planeand the tail insert point. Ham width refers to a measurement of piganatomy which can be used as an estimate of the pig's width. As shown inFIG. 8, this measurement is taken by measuring the linear distancebetween the dorsal aspect of the pig and max ham point. The line betweenmax ham and dorsal aspect of the pig is drawn perpendicular to the planedrawn normal to the floor through the dorsal aspect of the pig at themax ham location, because the dorsal aspect of the pig can be curved.The max ham point is the point on the ham farthest away from the dorsalaspect of the pig when the perspective of view is top down(perpendicular to the floor or any surface on which the swine ispositioned).

A non-geometric physical parameter is a physical parameter that is notinherent in scan data received using the described methods and systems,such as, for example, weight, girth or body mass index of an object orportion thereof. The non-geometric physical parameter can be determinedbased on the geometric physical parameters, or physical measurements,calculated from the scans which, in turn, are obtained by projectinglight patterns on the swine, as described above. For example, thecrown-rump length multiplied by the ham width multiplied by the tailinsertion height is used to estimate the weight of the swine. Avolumetric quantity of crown-rump x ham width x tail insertion height,measured with calipers and tailor tape, showed good correlation withswine weight (r²=0.97) for 25 swine. Further, the same volumetricquantity, measured from three dimensional scans, also showed goodcorrelation with weight (r²=0.97, N=25).

The three dimensional scans of the pigs can be taken from multipleangles, for example, side at human head height, side above head, fromabove the pig, three-quarters from the rear, i.e., from the sideapproximately two feet behind the tail. An image of the pig with aprojected light pattern overlaid is shown in FIG. 9A. A threedimensional scan of the pig obtained from the image is shown in FIG. 98.The squared correlation between the measurements obtained by threedimensional scans and weight is listed in the table below:

Physical Measurement R² (3-D scan) Length (crown-rump) 0.88 Flank toFlank 0.88 Height tail-head down 0.85 Width-Ham 0.70

As described previously, volume calculated based on the threedimensional scans showed good squared correlation with weight (R²=0.97).When volume was estimated by replacing ham width with the flank to flankdistance, the squared correlation remained high (R²=0.94). In additionto weight, other example physical parameters that can be estimated usingthe techniques described here include surface area, girth, volume,length, height, carcass composition, primal cuts proportions, tissue(for example, fat, bone, lean) composition, muscling, body mass index(BMI), and/or body symmetry/asymmetry.

Thus, the weight of a livestock animal can be estimated from the threedimensional representation of at least a portion of the animal. Asdescribed previously, the weight of a swine can be estimated bymultiplying the crown-rump length, the ham width, and the tail insertionheight. By using a single detected light pattern, the animal can beunrestrained. For example, the animal can be in its natural environmentin unrestrained motion. One scan (single projection event, singledetection based on the single projection event) can be taken, and thedata from one scan can be used to produce the three dimensionalrepresentation. Because one scan is taken, the scan is taken from onelocation relative to the object. It will be appreciated that multiplescans, i.e., multiple projection events, can also be taken to estimatethe physical parameters.

In some implementations, to determine weight, or other physicalparameters, from the three dimensional representation, the threedimensional representation can be compared to a standard representation.Optionally, the standard representation is a three dimensionalrepresentation of an object having similar characteristics to theobject. In alternative implementations, described later, weight can bedetermined without comparing to any standard representation.

For example, the standard representation can be based on the same objector a portion of the same object for which the physical parameter isbeing determined. If, for example, the weight of a pig is beingestimated, the standard can be a representation based on a pig.Optionally, the standard can be based on a representation of an animalof about or the same age as the object animal. Also, the standard can beoptionally based on a representation of an animal of about or the sameage, the same species, and/or the same breed as the object animal.

One example method for estimating weight from the three dimensionalrepresentation is to estimate the length of lines normal to the surfaceof the standard that Intersect the three dimensional representation ofthe object after it has been registered with the standard objectrepresentation. These lengths can be taken from multiple positionsacross the standard (for example, ham, shoulder, belly, back) and usedin a regression analysis to derive a weight prediction equation. Theprecision and accuracy of the weight estimates can be assessed andrefined by stepwise analysis of alternative equation structures usingproportion of variance accounted for by the equation (R-squared) as ameasure of precision and/or accuracy.

Other example methods for estimating weight include using the threedimensional representation of the object (for example, a pig) tovisually estimate the weight. However, for greater accuracy, referencepoints can be used to estimate some of the object's dimensions or toplace the size of the object within a given range. Some methods ofestimating weight from a three dimensional image include estimating aprojected area from the side of the object and estimating weight basedon the relationship between the side area and weight. For example, H.Minagawa, “Surface Area, Volume, and Projected Area ofJapanese-Shorthorn Cattle Measured by Stereo Photogrammetry UsingNon-metric Cameras,” J. Agr. Met. 50(1):17-22 (1994) describes acorrelation between side area of cattle and weight by image analysis.Further, a correlation between projected area and hog height have beenreported to estimate hog weight. For example, W=5.68×10⁻⁴ A^(1.16)H^(0.522). See for example. Minagawa, H. “Estimating Pig Weight with aVideo Camera,” Proc of the Fifth Intemational Livestock EnvironmentSymposium, 453-620 (1997); Minagawa and Hosono, “A Light ProjectionMethod to Estimate Pig Height,” Proc. of the First InternationalConference of Swine Housing, 120-125 (2000), and Minagawa and Murakami,“A Hands Off Method To Estimate Pig Weight by Light Projection and ImageAnalysis,” Livestock Environment VI: Proc. of the Sixth InternationalSymposium 72-79 (2001). In other examples, sow weight has been estimatedfrom a correlation of flank girth and weight. Thus, heart girth, area,and height can be derived from the three dimensional representation,which can be used to estimate weight. Also, cross sectional areas andvolumes can be estimated from the three dimensional representation andused to estimate weight.

In yet another example, a three dimensional representation taken of theside of a pig from a height equal to the height of the pig can includesurface details of one side of the pig from snout to tail and top of theback to the surface on which the pig is standing. Metrics that can beused to estimate weight from the three dimensional representation,include linear, curvilinear, angular, area and volumetric values.Provided the device 10 is aimed at the side of pig at right angles tothe long axis of the pig, and by measuring accurately the perpendiculardistance from the device 10 to the pig and the angles created betweenthe device 10 and the front (for example midway between the ears) andrear (for example the point of insertion of the tail) of the pig's body,the metrics listed above can be obtained. To translate those metrics ona given pig into a weight estimate, one or more of these metrics can beused to estimate weight.

An initial set of pigs can be imaged and weighed to obtain earlyestimates of measurement variation. The number of pigs to be imaged forcalculating and validating the weight-estimating accuracy is determinedby running a series of data collections and analyses until a desiredlevel of accuracy is achieved. This analysis, also known as “power ofthe test” analysis, can provide guidance on the size and structure ofdatasets to be collected for a pre-determined level of estimation error.Optionally, images and weights of 100 pigs are taken. Data collected bythis analysis provide metrics that can then be statistically analyzedusing stepwise regression, among other statistical techniques, toidentify the set of metrics which best estimates body weight. Thestepwise procedure can be repeated until the individual weight estimatesare within, for example, +/−2% of the corresponding actual weights.Alternatively, or in addition, the procedure can be repeated until theaverage of the weight estimates is, for example, +/−2% of the actualaverage weight. Example stepwise regression procedures, for example,implemented in software applications, are available from SAS (SASInstitute Inc, Cary N.C.), Systat (Systat Software, Inc, Chicago, Ill.).Other statistical software packages are also commercially available.

In yet another example, about 100 pigs are imaged to obtain a partialthree dimensional representation image which, when overlaid digitally(for example registered) on a standard image, is capable of providing anumber of metrics to permit an analysis of subsets of these metricsusing stepwise regression as described above, until the resultingindividual weight estimates are within, for example, +/−2% of thecorresponding actual individual weights.

The statistical equations resulting from either regression approach canbe used by the at least one processing device for estimating a physicalparameter such as weight. Thus, after a regression analysis isperformed, characteristics of the three dimensional representation ofthe object can be input into the statistical equations to determineweight.

In yet another example, estimates of volume and density can be used toestimate weight. Using this method, volume can be determined from thethree dimensional representation and known density estimates of tissueof that volume can be used to estimate weight. For example, arepresentative sample of pig cross sections can be obtained in order toevaluate density of each section. The three dimensional representationis used to simulate the body cross-sections from captured images. Thevolume (V) of each section, that is finite thickness, is then estimatedand the density (D) estimate appropriate to that section is used toobtain section weight (W) estimates (W=V*D). The weight calculated foreach cross-section, that is of finite thickness, can be summed over allsections to provide an estimate of the total weight of the animal. Anyof the above approaches can also be combined, and likewise analyzedstatistically for accuracy of estimating individual weights within, forexample, +/−2% of the corresponding actual individual weights.

Also provided herein are systems for estimating the physical parameterof an object. The system can comprise a capture system 116, such as thedevice 10 and at least one processing device as described above. Theprocessing device can be configured to produce a three dimensionalrepresentation of at least a portion of the object and to estimate aphysical parameter of the object using the three dimensionalrepresentation. An example system 100 is shown in FIG. 16.

Also provided are methods for estimating a physical parameter of anobject. The example devices and systems described above can be used inthe disclosed methods. Example methods for estimating a physicalparameter of an object comprise projecting one or more predeterminedlight patterns onto at least a portion of the object wherein eachprojected light pattern comprises a plurality of light elements. One ormore light patterns resulting from an interaction of one or more of theprojected light patterns and at least a portion of the object aredetected, wherein each detected light pattern comprises a plurality oflight elements and is detected from a single location. A single detectedlight pattern is processed to provide a three dimensional representationof at least a portion of the object by determining the three dimensionallocation of a plurality of light elements of the single detected lightpattern. The three dimensional representation of at least a portion ofthe object is used to estimate the physical parameter of the object.

Optionally, the single detected light pattern processed to provide thethree dimensional representation of at least a portion of the object isbased on a single projection of a predetermined light pattern onto atleast a portion of the object. Optionally, each single detectionlocation is offset from the location from which the pattern isprojected. The detection location can refer to the location of thedetector or detection aperture and the location from which the patternis projected can refer to the location of the projector or projectionaperture. Optionally, the single location from which one or more of thelight patterns is detected differs between one or more detected lightpattern.

The physical parameter estimated using the example method can optionallybe weight and the object can optionally be an animal, such as a mammal.In one aspect, the physical parameter estimated is weight and the animalis a livestock animal, such as a pig. The physical parameter can be ageometric or non-geometric physical parameter. The physical parametercan also be selected from the group consisting of weight, surface area,girth, length, height, carcass composition, primal cuts proportions,tissue composition, muscling, body mass index, body asymmetry and volumeor from any subset of these parameters. For example, the physicalparameter can be selected from the group consisting of weight, volume,carcass composition, primal cuts proportions, tissue composition,muscling, body mass index, and body asymmetry or any subset of theseparameters.

To estimate the physical parameter, the three dimensional representationof at least a portion of the object can be optionally registered with arepresentation of a standard object to determine the orientation of thethree dimensional representation relative to the standard objectrepresentation. For example, the orientation of at least a portion ofthe three dimensional representation can be compared to the orientationof the standard object representation to estimate differences indistances between portions of the three dimensional representation andportions of the standard object. Differences between the threedimensional representation of at least a portion of the object and thestandard object representation can be used to estimate the physicalparameter.

Thus, in one aspect, the physical parameter is weight and the use of thethree dimensional representation to estimate the weight comprisescomparing the three dimensional representation to a representation of astandard object. The compared representations are used to estimate theobjects weight. Optionally, the object is a livestock animal of a givenspecies and the standard object representation is based on a livestockanimal of the same given species. Optionally, the object is a livestockanimal of a given genetic type and the standard object representation isbased on a livestock animal of the same given genetic type. Optionally,the object is a livestock animal of a given species or genetic type andthe standard object representation is based on a livestock animal of thesame given species or genetic type and having about the same age as theobject livestock animal.

The physical parameter of the object can also be estimated by estimatingthe volume of one or more cross-sections of the object. For example, thephysical parameter is optionally weight and the use of the threedimensional representation to estimate the weight comprises estimatingthe volume of one or more cross-sections of the object.

Also provided are example methods for estimating a physical parameter ofan object that comprise projecting a plurality of predetermined lightpatterns having a plurality of light elements onto at least a portion ofthe object, wherein each pattern is projected onto the object fromsubstantially the same angle. One or more light patterns resulting froman interaction of the projected light patterns and at least a portion ofobject are detected. Each detected light pattern comprises a pluralityof light elements and is detected from a single location. One or moredetected light patterns are processed to provide a three dimensionalrepresentation of at least a portion of the object. The threedimensional representation of at least a portion of the object can thenbe used to estimate the physical parameter of the object.

The device described with reference to the aforementioned figuresrepresent an embodiment in which the projector and the detector arearranged on a vertical plane. In an alternative embodiment, describedwith reference to FIGS. 10-13, the projector and the detector arearranged on a horizontal plane.

FIG. 10 is a schematic diagram illustrating an exploded view of anexample device 1000 for estimating a physical parameter of an object.Components of the example device 1000 are listed in the table below:

Reference Numeral Component 1001 Camera Lens 1002 Camera 1003 Flash Lens1005 Diffuser 1006 Slide with bezel 1007 F Mount Adapter 1009 ScannerDisplay 1011 PCB Main 1012 Diffuser HV pattern 1013 Flash lens bottominsert 1015 Camera plug 1017 LED - Green 1018 LED - Red 1019 PCB HighVoltage 1020 Scanner Housing 1022 Internal Chassis Plate 1023 Flash LensMount Bracket 1025 Camera Mounting Block 1026 Front Rib 1028 Rear Rib1029 Side Rib 1030 Right Angle Rib 1033 Flat Washer 1035 ThreadedStandoff 1037 Standoff 1039 Standoff

In the example device 1000, the camera 1002 and the flash lens 1003 arearranged on the same horizontal plane. The camera lens 1001 can be anF-mount or C-mount camera lens that is commercially available. Thecamera 1002 can be a commercially available camera that can beoperatively coupled to the processing device, for example, using aUniversal Serial Bus (USB) coupling, fire-wire, a network board, and thelike. The flash lens 1003 can be a commercially available camera lenssuch as an F-mount or C-mount used for projection. The diffuser 1005 canbe a semi-transparent material or fully transparent glass lens used toevenly disperse the flash emitted light over the entire slide. The slidewith bezel 1006 can be, for example, a gobo, glass etched with silveropaque material, that is used to create the light pattern(s). The FMount Adapter 1007 can be a commercially available adapter used to holdthe projection lens to the projection assembly. The scanner display 1009can be a liquid crystal display (LCD) device, used to show the user theweight of the animal, live video of what the weight reader is seeing,and the like. In some implementations, the scanner display 1009 can beused as a graphical user interface (GUI), for example, a touch screen,and can be used to display messages, such as, error messages.

The PCB main 1011 is a circuit board used to receive the trigger signalfrom the user and to pass the signal to the camera, the flash, and thecomputer. The circuit board can be configured to synchronize the timingbetween the flash and the camera. The camera plug 1015 can be acommercially available camera connector used to connect the camera tothe PCB main and to the computer. The LED Green 1017 can be acommercially available light emitting diode that can be used to indicatea message, for example, a good scan message. The LED Red 1018 can be acommercially available light emitting diode that can be used toindicate, for example, a bad scan message. The PCB High Voltage 1019 canbe a printed circuit board used to charge and fire the flash. Thescanner housing 1020 can be a shell that can include the main componentsof the hand held device. The housing can be selected to provide rigidityand can have an ergonomic design so that the device is held in thecorrect orientation. In addition, the housing can provide ingressprotection and can be rugged in design.

The Internal Chassis Plate 1022 can be a component used to hold thecamera and projector assemblies at a distance, independent oftemperature changes. The flash lens mount bracket 1023 can be acomponent that can hold the f-mount and the flash lens to the internalchassis plate. The camera mounting block 1025 can be a component thatcan hold the C-mount and the camera lens to the internal chassis plate.The front rib 1026 can be a component used so that the chassis does notbend. The rear rib 1028 can be a component used so that the chassis doesnot bend. The right angle rib 1030 can be a component used so that thechassis does not bend.

FIG. 11 is a schematic diagram illustrating an isometric view of theexample device 1000 with top housing removed for estimating a physicalparameter of an object. As shown in FIG. 11, the camera 1002 is on theleft side and the flash lens 1003, i.e., the projector is on the rightside. Opening for the light pattern is below the camera lens 1001. FIG.12 is a schematic diagram illustrating an isometric view of the exampledevice 1000 with the bottom housing removed. FIG. 13 is a schematicdiagram illustrating a rear view of the example device 1000 with tophousing removed.

FIG. 14 is a diagram Illustrating showing a first light pattern and asecond light pattern that can be projected such that it is incident onan object and a surface on which the object is positioned, respectively.In some implementations, predetermined light patterns, for example, afirst light pattern 1405 and a second light pattern 1410, are projectedonto at least a portion of the object and onto at least a portion of asurface on which the object is positioned, respectively. As describedpreviously, each projected light pattern includes multiple lightelements. For example, a projector, such as the flash lens 1003, is usedto project a flash of light through a glass slide having two patterns ofmarkings selected and etched in the glass slide to produce the two lightpatterns.

Although FIG. 14 illustrates two light patterns that are incident on anobject and a surface, it will be appreciated that multiple lightpatterns can be generated from a single light source, for example, flashlens 1003. In some implementations, the light pattern 1410 has verticalstripes. Optionally, for example, the light pattern 1410 is normal to asurface on which the light pattern is projected. Further, the lightpattern 1410 optionally includes multiple vertical stripes, each stripebeing thicker than a stripe in the light pattern 1405. The verticalorientation and the thickness of the stripes in the light pattern 1410simplify the identification of the margins of the stripes despite theamount of random debris that can be encountered on a floor of theswine's habitat.

The light pattern 1405 includes multiple diagonal stripes. The diagonalstripes increase the coverage of areas of the swine because of thebarrel shape of the swine. The two light patterns can be projected ontothe object simultaneously. For example, of an area occupied by bothlight patterns, the first light pattern 1405 occupies the top 80% toimage the object, for example, the swine, and the second light pattern1410 occupies the bottom 20%, for example, the floor on which the swineis resting (FIG. 15). Capturing the floor enables aligning the swine. Inother words, because both the swine and a user of the projector areunrestrained, the second light pattern 1410 improves imaging the floorand determining “up” relative to the swine.

Interactions between the light patterns, 1405 and 1410, on the objectand the surface, produce light patterns that can be detected. Forexample, the camera 1002 detects multiple light elements thatcollectively represent the light patterns produced by the interaction. Adata processing apparatus, described with reference to FIG. 16, isconfigured to determine the three dimensional location of multiple lightelements included in the detected light patterns, and to determine athree dimensional representation of at least a portion of the object anda three dimensional representation of at least a portion of the surfacefrom the determined three dimensional locations of the multiple lightelements from the detected light patterns. The data processing apparatusis also configured to determine a position of the object relative to thesurface based on the determined three dimensional representations of atleast a portion of the object and at least a portion of the surface.

In implementations in which the detected light pattern is detected froma single location, the single detected light pattern processed toprovide the three dimensional representation of at least a portion ofthe object is optionally based on a single projection of a predeterminedlight pattern onto at least a portion of the object. Each singledetection location can be offset from the location from which thepattern is projected. The single location from which one or more of thelight patterns is detected differs between one or more detected lightpattern.

In implementations in which the physical parameter is estimated based oncomparison with a standard, the three dimensional representation of atleast a portion of the object is optionally registered with therepresentation of the standard object to determine the orientation ofthe three dimensional representation relative to the standard objectrepresentation. The orientation of at least a portion of the threedimensional representation can be compared to the orientation of thestandard object representation to estimate differences in distancesbetween portions of the three dimensional representation and portions ofthe standard object. In scenarios in which weight of a mammal or poultryis estimated, the standard object representation is based on the samespecies of the mammal or poultry or a mammal or poultry of the samegenetic type. Additionally, the standard object representation can bebased on a mammal or poultry of a substantially same age as the mammalor poultry being scanned.

In addition to illustrating an example data processing apparatus, FIG.16 is a block diagram illustrating portions of an example system 100 forestimating a physical parameter of an object. For example, the system100 can optionally be used to estimate weight of a livestock animal. Theexample system 100 is only one example of a system for estimating aphysical parameter of an object. The system 100 can comprise a capturesystem 116 that comprises a projection portion comprising a light source14 and a projection lens 20 and capture portion comprising a detector(for example CCD camera) 28. For example, FIGS. 1-4 and 10-13 illustratedevices with example capture systems. The capture system 116 cancommunicate with a processing system such as a general purpose computer101 directly or by way of a input interface 109.

Thus, the example system 100 for estimating a physical parameter of anobject includes a general-purpose computing device in the form of acomputer 101. The components of the computer 101 can include, but arenot limited to, one or more processors or processing devices 103, asystem memory 110, and a system bus 111 that couples various systemcomponents including the processor 103 to the system memory 110.

The system bus 111 represents one or more of several possible types ofbus structures, including a memory bus or memory controller, aperipheral bus, an accelerated graphics port, and a processor or localbus using any of a variety of bus architectures. By way of example, sucharchitectures can include an Industry Standard Architecture (ISA) bus, aMicro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, aVideo Electronics Standards Association (VESA) local bus, and aPeripheral Component Interconnects (PCI) bus also known as a Mezzaninebus. The bus 111 can also be implemented over a wired or wirelessnetwork connection. Each of the subsystems, including the processor 103,a mass storage device 104, an operating system 105, image processingsoftware 106, three dimensional scan data 107, the system memory 110, aninput interface 109, a display adapter 108, a display device 112, ahuman interface device 102, can be contained within the device housing12 and/or within one or more remote computers at physically separatelocations, connected through buses of this form, in effect implementinga fully distributed system. An example machine human interface 102 is atrigger as shown in FIG. 1.

In some implementations, the three dimensional representations can becaptured using, for example, a digital SLR camera, and stored on amemory card. The memory card with the stored images can be removed fromthe digital SLR camera and then operatively coupled to the dataprocessing apparatus configured to estimate the physical parameters.

The scan data 107 can include or be taken from a plurality of detectedlight elements from a single detected light pattern from the object.Examples of scan data include, for example, the image acquired with thedetector 28; a 3D point cloud that represents the 3D coordinates of thelight elements; various representations of a 3D point cloud, such as asurface mesh; and, intermediate data used in the calculation of the 3Dcoordinates the light elements. The light pattern can be detected from asingle detector location. Thus, a light pattern from the objectresulting from a single projection of the light pattern using theprojector portion of the capture system 116 can be detected by thedetector portion of the capture system. When a single projection isused, the light pattern is projected only once, and from a singlelocation, onto at least a portion of the object. The single lightpattern interacts with a least a portion of the object and a resultingpattern is detected by the detector portion of the capture system 116.The detected pattern can therefore result from a single projected lightpattern projected from a single location of the projector portion of thecapture system 116.

The computer 101 can include a variety of computer readable media. Suchmedia can be any available media that is accessible by the computer 101and includes both volatile and non-volatile media, removable andnon-removable media.

The system memory 110 can include computer readable media in the form ofvolatile memory, such as random access memory (RAM), and/or non-volatilememory, such as read only memory (ROM). The system memory 110 typicallycontains data such as scan data 107 and/or program modules such asoperating system 105, and image processing software 106 that areimmediately accessible to and/or are presently operated on by theprocessing unit 103.

The computer 101 can also include other removable/non-removable,volatile/non-volatile computer storage media. By way of example, a massstorage device 104 can provide non-volatile storage of computer code,computer readable instructions, data structures, program modules, andother data for the computer 101. For example, a mass storage device 104can be a hard disk, a removable magnetic disk, a removable optical disk,magnetic cassettes or other magnetic storage devices, flash memorycards, CD-ROM, digital versatile disks (DVD) or other optical storage,random access memories (RAM), read only memories (ROM), electricallyerasable programmable read-only memory (EEPROM), and the like.

Any number of program modules can be stored on the mass storage device104, including by way of example, an operating system 105, imageprocessing software 106 and scan data 107. A user can enter commands andinformation into the computer 101 via an input device. Examples of suchinput devices include, but are not limited to, a keyboard, pointingdevice (for example, a mouse), a microphone, a joystick, a serial port,a scanner, and the like. These and other input devices can be connectedto the processing unit 103 via a human machine interface 102 that iscoupled to the system bus 111, but can be connected by other interfaceand bus structures, such as a parallel port, game port, or a universalserial bus (USB).

A display device 112 can also be connected to the system bus 111 via aninterface, such as a display adapter 108. For example, a display devicecan be a monitor. In addition to the display device 112, other outputperipheral devices can include components such as speakers and a printerwhich can be connected to the computer 101 via an input/outputinterface.

The computer 101 can operate in a networked environment using logicalconnections to one or more remote computing devices. By way of example,a remote computing device can be a personal computer, portable computer,a server, a router, a network computer, a peer device or other commonnetwork node, and so on.

Logical connections between the computer 101 and a remote computingdevice can be made via a local area network (LAN) and a general widearea network (WAN). Such networking environments are commonplace inoffices, enterprise-wide computer networks, intranets, and the Internet.In a networked environment, image processing software 106 and scan data107 depicted relative to the computer 101, or portions thereof, can bestored in a remote memory storage device. For purposes of illustration,application programs and other executable program components such as theoperating system are illustrated herein as discrete blocks, although itis recognized that such programs and components reside at various timesin different storage components of the computing device 101, and areexecuted by the data processor(s) of the computer.

An implementation of the image processing software 106 can be stored onor transmitted across some form of computer readable media. Computerreadable media can be any available media that can be accessed by acomputer. By way of example, and not limitation, computer readable mediacan comprise computer storage media and communications media. Computerstorage media include volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer readable instructions, data structures,program modules, or other data. Computer storage media includes, but isnot limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium which can be used tostore the desired information and which can be accessed by a computer.

The scan data 107 can enter the computer 101 via the input interface109. The input interface can be IEEE-488, IEEE-1 394, Universal SerialBus (USB), or the like. In some examples, the scan data can enter thecomputer without a input interface. For example, where the devicehousing 12 comprises the capture system 116 and the computer 101, thescan data 107 can be in communication with the processor 103 withoututilizing a input interface 109. The scan data 107 can be stored in themass storage device 104 and transferred to system memory 110 to be usedby image processing software 106.

The imaging processing software 106 can use the scan data 107 to producea three dimensional representation using triangulation as describedabove. The imaging processing software can also use the produced threedimensional representation to provide an estimate of the desiredphysical parameter. Thus, the light detected by the detector 28 andcommunicated to the computer 101 can be processed to provide a threedimensional representation of at least a portion of the object. The atleast a portion of the object can be further processed to estimate aphysical parameter (for example weight) of the object. The weightestimate can be displayed on a display device such as 112 or a displaydevice 34 located on the housing 12.

Embodiments of the subject matter and the operations described in thisspecification can be implemented in digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. Embodiments of the subject matterdescribed in this specification can be implemented as one or morecomputer programs, i.e., one or more modules of computer programinstructions, encoded on computer storage medium for execution by, or tocontrol the operation of, data processing apparatus. A computer storagemedium can be, or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. Moreover,while a computer storage medium is not a propagated signal, a computerstorage medium can be a source or destination of computer programinstructions encoded in an artificially-generated propagated signal. Thecomputer storage medium can also be, or be included in, one or moreseparate physical components or media (for example, multiple CDs, disks,or other storage devices).

The operations described in this specification can be implemented asoperations performed by a data processing apparatus on data stored onone or more computer-readable storage devices or received from othersources.

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing. The apparatus can includespecial purpose logic circuitry, for example, an FPGA (fieldprogrammable gate array) or an ASIC (application-specific integratedcircuit). The apparatus can also include, in addition to hardware, codethat creates an execution environment for the computer program inquestion, for example, code that constitutes processor firmware, aprotocol stack, a database management system, an operating system, across-platform runtime environment, a virtual machine, or a combinationof one or more of them. The apparatus and execution environment canrealize various different computing model infrastructures, such as webservices, distributed computing and grid computing infrastructures.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinventions or of what may be claimed, but rather as descriptions offeatures specific to particular embodiments of particular inventions.Certain features that are described in this specification in the contextof separate embodiments can also be implemented in combination in asingle embodiment. Conversely, various features that are described inthe context of a single embodiment can also be implemented in multipleembodiments separately or in any suitable subcombination. Moreover,although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

Throughout this disclosure various publications are referenced. Thedisclosures of these publications in their entireties are herebyincorporated by reference. Thus, particular embodiments of the subjectmatter have been described. Other embodiments are within the scope ofthe following claims. In some cases, the actions recited in the claimscan be performed in a different order and still achieve desirableresults. In addition, the processes depicted in the accompanying figuresdo not necessarily require the particular order shown, or sequentialorder, to achieve desirable results. In certain implementations,multitasking and parallel processing may be advantageous.

1-54. (canceled)
 55. A method for estimating an animal's weight, themethod comprising: projecting with an apparatus a light patternincluding a plurality of light elements onto at least a portion of theanimal; capturing with the apparatus an image of the plurality of lightelements overlaid on the animal; processing the image to identify theplurality of light elements; and estimating the weight of the animalwith the identified plurality of light elements.
 56. A method accordingwith claim 55, wherein the apparatus comprises a human machine interfaceand a display device, the method further comprising: using the humanmachine interface to initiate projecting the light pattern and capturingthe image.
 57. A method according with claim 55, further comprising:displaying the weight estimate with the display.
 58. A method accordingwith claim 55, wherein the light elements comprise coded targets.
 59. Amethod according with claim 55, wherein the weight is estimated withonly one image.
 60. A method according with claim 55, further comprisingcalculating a plurality of geometric parameters of the animal with theidentified light elements; and estimating the weight with the geometricparameters.
 61. A method according with claim 60, further comprisingcapturing additional images, wherein calculating the plurality ofgeometric parameters comprises processing the image and the additionalimages to calculate the plurality of geometric parameters.
 62. A methodaccording with claim 60, wherein the plurality of geometric parametersare selected from the group consisting of crown-rump length, heartgirth, front leg circumference below the elbow, elbow to elbow distance,flank to flank distance, front leg length, crease to crease length, hockcircumference, rear leg circumference at groin, width at shoulders, hamwidth, width at ham crease, width at maximum ham protrusion, bellyclearance, height at scapula, height above hip, and height at tailinsertion.
 63. A method according with claim 55, further comprising:producing a three-dimensional representation of the animal; andcomparing the three-dimensional representation to a standardrepresentation.
 64. A method according with claim 63, wherein producinga three-dimensional representation comprises determining thethree-dimensional locations of the light elements.
 65. A methodaccording with claim 63, wherein comparing comprises: estimating lengthsof lines normal to the standard representation, the lengths representingdistances between the standard representation and the three-dimensionalrepresentation of the animal; and estimating the weight of the animalbased on the lengths of the lines.
 66. An apparatus for estimating ananimal's weight, the apparatus comprising: a housing configured to behand-held; a light source; a human machine interface; a capture portionincluding a detector, the capture portion and the light source locatedin the housing, which supports the human machine interface; a processor,and a non-transitory computer readable medium having embedded thereinprocessing instructions configured, when executed by the processor, toimplement a method comprising: projecting a light pattern including aplurality of light elements onto at least a portion of the animal;capturing with the capture portion an image of the plurality of lightelements overlaid on the animal; processing the image to identify theplurality of light elements; and estimating the weight of the animalwith the identified plurality of light elements.
 67. An apparatusaccording with claim 66, wherein the processor and the non-transitorycomputer readable medium are enclosed in the housing.
 68. An apparatusaccording with claim 66, wherein the light elements comprise codedtargets.
 69. An apparatus according with claim 66, wherein the weight isestimated with only one image.
 70. An apparatus according with claim 66,the method further comprising calculating a plurality of geometricparameters of the animal with the identified light elements; andestimating the weight with the geometric parameters.
 71. An apparatusaccording with claim 70, the method further comprising capturingadditional images, wherein calculating the plurality of geometricparameters comprises processing the image and the additional images tocalculate the plurality of geometric parameters.
 72. An apparatusaccording with claim 70, wherein the plurality of geometric parametersare selected from the group consisting of crown-rump length, heartgirth, front leg circumference below the elbow, elbow to elbow distance,flank to flank distance, front leg length, crease to crease length, hockcircumference, rear leg circumference at groin, width at shoulders, hamwidth, width at ham crease, width at maximum ham protrusion, bellyclearance, height at scapula, height above hip, and height at tailinsertion.
 73. An apparatus according with claim 66, the method furthercomprising: producing a three-dimensional representation of the animal;and comparing the three-dimensional representation to a standardrepresentation.
 74. An apparatus according with claim 73, whereinproducing a three-dimensional representation comprises determining thethree-dimensional locations of the light elements.
 75. An apparatusaccording with claim 73, wherein comparing comprises: estimating lengthsof lines normal to the standard representation, the lengths representingdistances between the standard representation and the three-dimensionalrepresentation of the animal; and estimating the weight of the animalbased on the lengths of the lines.